package alg;
//给定一个二进制数组 nums 和一个整数 k，假设最多可以翻转 k 个 0 ，则返回执行操作后 数组中连续 1 的最大个数 。
//示例 1：
//输入：nums = [1,1,1,0,0,0,1,1,1,1,0], K = 2
//输出：6
//解释：[1,1,1,0,0,1,1,1,1,1,1]
//粗体数字从 0 翻转到 1，最长的子数组长度为 6。
class Solution {
    public int longestOnes(int[] nums, int k) {
        int ret = 0;
        int left = 0,right = 0,zero = 0;
        int n = nums.length;
        for(right = 0;right < n;right++){
            if(nums[right] == 0)zero++;//进窗口
            while(zero > k){
                //判断
                if(nums[left] == 0){
                    zero--;

                }
                left++;

            }
            ret = Math.max(ret , right - left +1);
        }
        return ret;
    }


}